# SPDX-License-Identifier: GPL-2.0
#
# KVM configuration
#

source "virt/lib/Kconfig"

menuconfig VIRTUALIZATION
	bool "Virtualization"
	help
	  Say Y here to get to see options for using your Linux host to run
	  other operating systems inside virtual machines (guests).
	  This option alone does not add any kernel code.

	  If you say N, all options in this submenu will be skipped and
	  disabled.

if VIRTUALIZATION

menuconfig KVM
	bool "Kernel-based Virtual Machine (KVM) support"
	depends on OF
	# for TASKSTATS/TASK_DELAY_ACCT:
	depends on NET && MULTIUSER
	select MMU_NOTIFIER
	select PREEMPT_NOTIFIERS
	select HAVE_KVM_CPU_RELAX_INTERCEPT
	select HAVE_KVM_ARCH_TLB_FLUSH_ALL
	select KVM_MMIO
	select KVM_GENERIC_DIRTYLOG_READ_PROTECT
	select SRCU
	select KVM_VFIO
	select HAVE_KVM_EVENTFD
	select HAVE_KVM_IRQFD
	select HAVE_KVM_MSI
	select HAVE_KVM_IRQCHIP
	select HAVE_KVM_IRQ_ROUTING
	select IRQ_BYPASS_MANAGER
	select HAVE_KVM_IRQ_BYPASS
	select HAVE_KVM_VCPU_RUN_PID_CHANGE
	select TASKSTATS
	select TASK_DELAY_ACCT
	help
	  Support hosting virtualized guest machines.

	  If unsure, say N.

if KVM

source "virt/kvm/Kconfig"

config KVM_ARM_PMU
	bool "Virtual Performance Monitoring Unit (PMU) support"
	depends on HW_PERF_EVENTS
	default y
	help
	  Adds support for a virtual Performance Monitoring Unit (PMU) in
	  virtual machines.

config KVM_INDIRECT_VECTORS
	def_bool HARDEN_BRANCH_PREDICTOR || RANDOMIZE_BASE

endif # KVM

endif # VIRTUALIZATION
